const app = getApp()
Page({
  data: {
    hasMore: true,
    loading: true,
    // 是否为新片榜
    newBoard: true,
    type: 'in_theaters',
    movies: [],
    page: 1,
    size: 20
  },
  loadMore() {
    let _this = this
    if (!this.data.hasMore) {
      return
    }
    // 获取电影榜单列表
    app.douban.findList(this.data.type, this.data.page++, this.data.size, function (res) {
      // 若获取条数等于默认20条，则还有数据，loading继续
      if (res.data.subjects.length && _this.data.newBoard && (res.data.subjects.length === _this.data.size)) {
        _this.setData({
          movies: _this.data.movies.concat(res.data.subjects),
          loading: false
        })
      }
      // 若获取条数小于默认20条，则没有跟多数据，loading结束
      else if (res.data.subjects.length && _this.data.newBoard && (res.data.subjects.length < _this.data.size)) {
        _this.setData({
          movies: _this.data.movies.concat(res.data.subjects),
          loading: false,
          hasMore: false
        })
      }
      else {
        _this.setData({
          hasMore: false
        })
      }
      // 新片榜只执行一次
      if (_this.data.type === 'new_movies') {
        _this.setData({
          newBoard: false
        })
      }
    })
  },
  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.data.type = options.type || this.data.type
    wx.setNavigationBarTitle({
      title: options.title,
    })
    this.loadMore()
  },

  onReachBottom: function () {
    this.loadMore()
  }
})